In addition to analog modulation and demodulation, digital communication requires timing information, used to identify the rate at which bits are transmitted as well as the start (and end) of each bit and to permit the receiver to correctly identify each bit in a transmitted message.
Synchronization of transmitters and receivers are characterized based on the source of timing information used at the receiver. If the timing signal employed by the receiver is generated in the receiver independent from the transmitter, transmission is termed asynchronous; however, if the receiver's timing signal is generated, either directly or indirectly, from the transmitter clock, transmission is characterized as synchronous. For direct synchronous transmission, a separate clock signal is transmitted. When timing is generated indirectly (indirect synchronous transmission), the timing information is embedded in the transmitted data and must be recovered from the data at the receiver, where the recovered timing information is employed to synchronize the receiver circuitry with the transmitter clock.
Indirect synchronous transmission is commonly used for high data rate transfers, including many packet-based protocols. In such systems, packet transfer is preceded by a synchronization sequence enabling the frequency for a local oscillator (LO) based local clock signal within the receiver to be adjusted to match the frequency of the recovered clock signal.
Local clock oscillators, however, are subject to drift due to voltage, aging or temperature. As a result, after initial synchronization, the local clock signal may drift from the recovered clock signal over the length of a packet, frame or other data sequence. Such drift between the clock signals can be cumulative, resulting in skew of greater than several clock periods between the two clocks over the length of the data transfer following the initial synchronization. In such cases, bits may be added or dropped from the incoming data stream, resulting in bit errors in the received data stream.
For lower data rates, accumulated skew between local and recovered clocks remains less than a clock period, even for long data transfers following an initial synchronization, since the drift is only a small percentage of the clock period (as the clocks are slower) and never reaches a clock period. As the data rate increases, however, drift between the clocks becomes a significant percentage of the clock period, and accumulated drift over the data sequence following the initial synchronization may equal many clock periods. The length of the data sequence in such cases must be constrained so that drift over the data transfer interval is not greater than a clock period, else faster clocks will result in bits being added or lost from the incoming data stream.
There is, therefore, a need in the art for a mechanism dynamically absorbing frequency error between local and recovered clocks following an initial synchronization to compensate for drift between the clocks in a high data rate transmission.